CosyOS-III API 用户参考手册  1.0.2
ur_api.h
浏览该文件的文档.
1 /**************************************************************************/
11 #ifndef __UR_API_H
12 #define __UR_API_H
13 
91 /**************************************************************************/
109 #define uExternTask(task) \
110  sCSV_ExternTask(task)
111 
117 #define dExternTask(task) \
118  dCSV_ExternTask(task)
119 
139 #define uCreateTask(task, pri, tss, srt, res) \
140  sCSV_CreateTask(task, pri, tss, srt, res)
141 
152 #define dCreateTask(task, pri, tss, srt, res) \
153  dCSV_CreateTask(task, pri, tss, srt, res)
154 
167 #define uCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) \
168  sCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, res)
169 
182 #define dCreateTask_TimInt(tmid, arl, task, pri, tss, srt, res) \
183  dCSV_CreateTask_TimInt(tmid, arl, task, pri, tss, srt, res)
184 
198 #define uCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) \
199  sCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res)
200 
214 #define dCreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res) \
215  dCSV_CreateTask_TimQry(tmid, event, arl, task, pri, tss, srt, res)
216 
241 #define uStartTask(task, status) \
242  sUSV_StartTask(&u_taskhand_##task, status)
243 
254 #define uStartTask_Ready(task) \
255  uStartTask(task, OS_STATUS_READY)
256 
267 #define uStartTask_Suspend(task) \
268  uStartTask(task, OS_STATUS_SUSPENDED)
269 
288 #define tClearDelay sTSV_ClearDelay
289 
303 #define uResumeTask(task) \
304  sUSV_ResumeTask(u_taskhandle_##task)
305 
319 #define uSuspendTask(task) \
320  sUSV_SuspendTask(u_taskhandle_##task)
321 
333 #define uDeleteTask(task) \
334  sUSV_DeleteTask(u_taskhandle_##task)
335 
350 #define uSetTaskPri(task, npri) \
351  sUSV_SetTaskPri(u_taskhandle_##task, npri)
352 
366 #define uClearBlock(task) \
367  sUSV_ClearBlock(u_taskhandle_##task)
368 
394 #define uSetBlock_tc(task, tc) sUSV_SetBlock(u_taskhandle_##task, tc)
395 
410 #define uSetBlock_ms(task, ms) uSetBlock_tc(task, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
411 
426 #define uSetBlock_s(task, s) uSetBlock_ms(task, 1000UL * (s))
427 
442 #define uSetBlock_m(task, m) uSetBlock_s(task, 60UL * (m))
443 
458 #define uSetBlock_h(task, h) uSetBlock_m(task, 60UL * (h))
459 
477 #define uYieldTasking su_yield_tasking()
478 
486 #define uSetTaskingPri(npri) sUSV_SetTaskPri(s_task_current, npri)
487 
493 #define uSuspendTasking sUSV_SuspendTask(s_task_current)
494 
500 #define uDeleteTasking sUSV_DeleteTask(s_task_current)
501 
512 #define uResumeSuspend(task) sUSV_ResumeSuspend(u_taskhandle_##task)
513 
534 #define uDelay_tc(tc) sUSV_Delay(tc)
535 
541 #define uDelay_ms(ms) uDelay_tc((1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
542 
548 #define uDelay_s(s) uDelay_ms(1000UL * (s))
549 
555 #define uDelay_m(m) uDelay_s(60UL * (m))
556 
562 #define uDelay_h(h) uDelay_m(60UL * (h))
563 
566 /**************************************************************************/
585 #define uCreateHook_TimInt(tmid, arl, hook) \
586  sCSV_CreateHook_TimInt(tmid, arl, hook)
587 
597 #define uTimInt_tc(tmid, tc) sUSV_TimInt(tmid, tc)
598 
608 #define uTimInt_ms(tmid, ms) uTimInt_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
609 
619 #define uTimInt_s(tmid, s) uTimInt_ms(tmid, 1000UL * (s))
620 
630 #define uTimInt_m(tmid, m) uTimInt_s(tmid, 60UL * (m))
631 
641 #define uTimInt_h(tmid, h) uTimInt_m(tmid, 60UL * (h))
642 
651 #define uTimInt_Cancel(tmid) uTimInt_tc(tmid, 0)
652 
661 #define xTimInt_AutoReload(tmid, arl) s_timint_autoreload[tmid] = arl
662 
665 /**************************************************************************/
686 #define uCreateHook_TimQry(tmid, event, arl, hook) \
687  sCSV_CreateHook_TimQry(tmid, event, arl, hook)
688 
698 #define uTimQry_tc(tmid, tc) sUSV_TimQry(tmid, tc)
699 
709 #define uTimQry_ms(tmid, ms) uTimQry_tc(tmid, (1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
710 
720 #define uTimQry_s(tmid, s) uTimQry_ms(tmid, 1000UL * (s))
721 
731 #define uTimQry_m(tmid, m) uTimQry_s(tmid, 60UL * (m))
732 
742 #define uTimQry_h(tmid, h) uTimQry_m(tmid, 60UL * (h))
743 
752 #define uTimQry_Cancel(tmid) uTimQry_tc(tmid, ~0)
753 
762 #define xTimQry_AutoReload(tmid, arl) s_timqry_autoreload[tmid] = arl
763 
766 /**************************************************************************/
781 #define uExternMut(mut) sCSV_ExternMut(mut)
782 
789 #define uCreateMut(mut) sCSV_CreateMut(mut)
790 
804 #define uTakeMut(mut, tc) sUSV_TakeMut(mut, tc)
805 
811 #define uBackMut(mut) sUSV_BackMut(mut)
812 
815 /**************************************************************************/
827 #define uExternBin(bin) sCSV_ExternBin(bin)
828 
837 #define uCreateBin(bin, init) sCSV_CreateBin(bin, init)
838 
849 #define uLockBin(bin) bin.binary = false
850 
863 #define uWaitBin(bin, tc) sUSV_WaitBin(bin, tc)
864 
875 #define uGiveBin(bin) sUSV_GiveBin(bin)
876 
894 #define uTakeBin(bin, tc) sUSV_TakeBin(bin, tc)
895 
905 #define uBackBin(bin) uGiveBin(bin)
906 
909 /**************************************************************************/
921 #define uExternSem(sem) sCSV_ExternSem(sem)
922 
930 #define uCreateSem(sem, init, max) sCSV_CreateSem(sem, init, max)
931 
940 #define uGiveSem(sem) sUSV_GiveSem(sem)
941 
957 #define uTakeSem(sem, tc) sUSV_TakeSem(sem, tc)
958 
966 #define uBackSem(sem) uGiveSem(sem)
967 
970 /**************************************************************************/
991 #define uExternTionbox(tbox) sCSV_ExternTionbox(tbox)
992 
998 #define uCreateTionbox(tbox) sCSV_CreateTionbox(tbox)
999 
1017 #define uRecvFetion(tbox, tc) sUSV_RecvFetion(tbox, tc)
1018 
1032 #define uSendFetion(tbox, tion) sUSV_SendFetion(tbox, tion)
1033 
1036 /**************************************************************************/
1048 #define uExternMailbox(mbox) sCSV_ExternMailbox(mbox)
1049 
1055 #define uCreateMailbox(mbox) sCSV_CreateMailbox(mbox)
1056 
1070 #define uRecvMail(mbox, tc) sUSV_RecvMail(mbox, tc)
1071 
1081 #define uSendMail(mbox, mail) sUSV_SendMail(mbox, mail)
1082 
1085 /**************************************************************************/
1101 #define uExternQueue_Static(que) sCSV_ExternQueue_Static(que)
1102 
1108 #define uExternQueue_Dynamic(que) sCSV_ExternQueue_Dynamic(que)
1109 
1119 #define uCreateQueue_Static(que, mode, len) sCSV_CreateQueue_Static(que, mode, len)
1120 
1130 #define uCreateQueue_Dynamic(que, mode, len) sCSV_CreateQueue_Dynamic(que, mode, len)
1131 
1146 #define uRecvMsg(que, tc) sUSV_RecvMsg(que, tc)
1147 
1161 #define uSendMsg(que, msg) sUSV_SendMsg(que, msg)
1162 
1165 /**************************************************************************/
1184 #define uExternFlagGroup(group, bits) sCSV_ExternFlagGroup(group, bits)
1185 
1191 #define uDefFlagBit(bit) sDefBitField(bit)
1192 
1198 #define uDefVoidBits(nvb) sDefVoidBits(nvb)
1199 
1206 #define uCreateFlagGroup(group) sCSV_CreateFlagGroup(group)
1207 
1220 #define uWaitFlagGroup(group, tc) sUSV_WaitFlagGroup(group, tc)
1221 
1232 #define uQueryFlagGroup(group) sUSV_QueryFlagGroup(group)
1233 
1242 #define uClearFlagGroup(group) sUSV_ClearFlagGroup(group)
1243 
1253 #define uSetFlagBit(group, bit) uSetFlagBits(group, 1) bit)
1254 
1264 #define uClearFlagBit(group, bit) uClearFlagBits(group, 1) bit)
1265 
1276 #define uSetFlagBits(group, nbit) sUSV_WriteFlagBits(group, true, nbit)
1277 
1288 #define uClearFlagBits(group, nbit) sUSV_WriteFlagBits(group, false, nbit)
1289 
1292 /**************************************************************************/
1305 #define xUpdateCopy(code) sUpdateCopy(code)
1306 
1313 #define iWhichGVar_Read s_sign_updatecopy
1314 
1321 #define iWriteGVar(gv, lv) sPSV_WriteGVar((void *)&gv, (void *)&lv, sizeof(gv))
1322 
1330 #define iWriteGAry(gp, lp, size) sPSV_WriteGVar(gp, lp, size)
1331 
1338 #define iWriteGStr(gs, ls) sPSV_WriteGVar(gs, ls, 0)
1339 
1345 #define iPendSVC(fp) sPSV_PendSVC(fp)
1346 
1352 #define iSendSign(sign) sPSV_SendSign(sign)
1353 
1356 /**************************************************************************/
1372 #define uGetTime(t) sUSV_GetTime(t)
1373 
1382 #define uSetTime(t) sUSV_SetTime(t)
1383 
1386 /**************************************************************************/
1406 #define uMalloc(size) sUSV_Malloc(size)
1407 
1416 #define uCalloc(nmemb, size) sUSV_Calloc(nmemb, size)
1417 
1426 #define uRealloc(p, size) sUSV_Realloc(p, size)
1427 
1433 #define uFree(p) sUSV_Free(p)
1434 
1452 #define uCreateMempool sCSV_CreateMempool
1453 
1462 #define uInitMempool(size) sUSV_InitMempool(size)
1463 
1471 #define uTalloc(size) sUSV_Talloc(size)
1472 
1476 #define uFreeMempool sUSV_FreeMempool
1477 
1480 /**************************************************************************/
1504 #define uScheduleLock su_schedule_lock()
1505 
1510 #define uScheduleUnlock su_schedule_unlock()
1511 
1537 #define uKernelLock su_kernel_lock()
1538 
1543 #define uKernelUnlock su_kernel_unlock()
1544 
1556 #if MCUCFG_ISA != __ARM__
1557 
1568 #define xDisableIRQ mxDisableIRQ
1569 
1574 #define xResumeIRQ mxResumeIRQ
1575 
1577 #else
1578 
1589 #define xDisableIRQ mxDisableIRQ
1590 
1596 #define xResumeIRQ(oirq) mxResumeIRQ(oirq)
1597 
1619 #define xMaskingPRI(npri) mxMaskingPRI(npri)
1620 
1626 #define xResumePRI(opri) mxResumePRI(opri)
1627 
1629 #endif
1630 
1632 /**************************************************************************/
1688 #define iDebugSend s_sign_debug_send = true
1689 #define iDebugRecv s_sign_debug_recv = true
1690 
1705 #define xTick_ms(ms) ((1000UL * (ms)) / SYSCFG_SYSTICKCYCLE)
1706 
1712 #define xTick_s(s) xTick_ms(1000UL * (s))
1713 
1719 #define xTick_m(m) xTick_s(60UL * (m))
1720 
1726 #define xTick_h(h) xTick_m(60UL * (h))
1727 
1739 #define iPendSV_Set mPendSV_Set
1740 
1746 #endif